$(function(){
	initValidate();//初始化表单校验
	WASP_WIDGET.triggerSelectOnEmpId("#empIds",{queryDimission: true,multiple:true});//员工姓名
	WASP_WIDGET.triggerSelectOnPost("postId");//岗位
	WASP_WIDGET.triggerSelectOnOperRole("operRoleId");//操作角色
	WASP_WIDGET.triggerSelectOnDeptId("deptId",{multiple: true,leavedept: true});// 叶子部门
	//回显员工姓名的值
	WASP_WIDGET.initializeSelectVal('empIds');
	//回显岗位的值
	WASP_WIDGET.initializeSelectVal('postId');
	//回显操作角色的值
	WASP_WIDGET.initializeSelectVal('operRoleId');
	//回显部门的值
	WASP_WIDGET.initializeSelectVal('deptId');
	//初始化单选框
	initRadios();
	$('#roleType').select2({
		placeholder : '角色类型'
	});
	$('#isDempt').select2({
		placeholder : '角色类型'
	});
	$('#isDemptPer').select2({
		placeholder : '是否为部门人员默认角色'
	});
	$('#isMiddleBack').select2({
		placeholder : '是否中后台角色'
	});
	WASP_ROLE.showShareInfo();//分享权限列表的数据加载
	//初始化单选框
	initRadios();
	//select2改变值的时候要进行及时表单校验
	triggerValidOnSelectChange("roleType","empIds","postId","operRoleId","deptId","isDempt","isDemptPer");
	// 初始化是否是默认部门联动
	IsDefault($('#isDempt'));
});	

/**
 * 本模块业务校验：验证角色名称是否已经存在
 */
jQuery.validator.methods["checkIsExists"]=(function(value,element){
	//验证ID是否重复，pass为false代表重复，校验不通过
	var pass = false;
	var roleName = $("#roleName").val();
	var roleType = $("#roleType").val();
	var roleId = $("#roleId").val();
	if(!roleName)
		return true;
	
	$.ajax({
		  url: PATH_PREFIX+"queryRoleCount.do",
		  dataType: "json",
		  type: "POST",
		  cache: false,
		  async: false,
		  data: {
			  roleName:roleName,roleType:roleType,roleId:roleId
		  },
		  success: function( data ){
				if(data > 0){
					pass = false;
					return;
				}
				pass=true;
		  },
		  error: function(jqXHR, textStatus, errorThrown){
				ctools.alert("查询失败" + textStatus);
				pass = false;
		  }
	});
	return this.optional(element) || pass;
});

function initValidate(){
	 $("#roleUpdateForm").validate({
	        focusCleanup: true,
	        rules: {
	        	roleName:{
	        		required:true,
	        		checkIsExists:true
	        	},
	        	roleType:{
	        		required:true,
	        		checkIsExists:true
	        	},
	        	empIds:{
	        		required:true
	        	},
	        	isDempt:{
	        		required:true
	        	},
	        	isDemptPer:{
	        		required:true
	        	},
	        	operRoleId:{
	        		required:true
	        	},
	        	isMiddleBack:{
	        		required:true
	        	}
	        },
	        messages: {
	        	roleName:{
	        		required:"请选择角色名称",
	        		checkIsExists:"该类型存在该角色名称，请重新填写"
	        	},
	        	roleType:{
	        		required:"请选择角色类型",
	        		checkIsExists:"该类型存在该角色名称，请重新选择"
	        	},
	        	empIds:{
	        		required:"请选择员工"
	        	},
	        	isDempt:{
	        		required:"请选择是否为部门资源默认角色"
	        	},
	        	isDemptPer:{
	        		required:"请选择是否为部门人员默认角色"
	        	},
	        	operRoleId:{
	        		required:"请选择操作角色"
	        	},
	        	isMiddleBack:{
	        		required:"请选择是否中后台角色"
	        	}
	        }
	    });
	
}

// 是否为默认部门 （联动）
function IsDefault(element){
	var isDempt = $('#isDempt').val();
	var isDemptPer = $('#isDemptPer').val();
	if(isDempt == 'Y' || isDemptPer == 'Y'){
		$('#pre_dempt').show();
		// 添加校验规则
		$('#deptId').rules("add", {
			required : true, messages:{required:"部门不能为空"}
		});
	}else{
		$('#pre_dempt').hide();
		// 删除校验规则
		$('#deptId').rules('remove','required');
		//清空校验提示语
		$("#deptId").parent().find('label.error').hide().html('');
	}
}


function submitUpdateForm(){	
//	$("#roleUpdateForm").submit();
	SubmitAndPreventSecond("roleUpdateForm",function(){
		$("#roleUpdateForm").attr("action",PATH_PREFIX+"updateRole.do");
	});//防止表单二次提交
}